package com.zds.scm.dao;

import java.util.List;

import com.zds.scm.common.dao.CommonDAO;
import com.zds.scm.common.dao.DaoException;
import com.zds.scm.domain.UserInfo;

public interface UserInfoDAO extends CommonDAO<UserInfo> {
	/**
	 * 分页查询所有的数据  当前页和每页数量任意一个小于1就不分页查询
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	public List<UserInfo> findAll(int currentPage,int pageSize);
	/**
	 * 总的记录数,对应findAll
	 * @return
	 */
	public int getTotalRows();
	/**
	 * 根据名称模糊查询，并对结果分页,当前页和每页数量任意一个小于1就不分页查询
	 * @param currentPage   从1开始,表示第一页
	 * @param pageSize      每一页显示记录数的多少
	 * @param likeUserName  用户名模糊查询条件分页
	 * @return 分页后的数据列表
	 * @throws DaoException
	 */
	public List<UserInfo> findByName(String likeUserName,int currentPage,int pageSize);
	/**
	 * 根据名字模糊查询得到总的记录数,对应findByName
	 * @param userName
	 * @return
	 */
	public int getTotalRowsByName(String likeUserName);
	/**
	 * 根据名称账号查询，并对结果分页 当前页和每页数量任意一个小于1就不分页查询
	 * @param currentPage   从1开始,表示第一页
	 * @param pageSize      每一页显示记录数的多少
	 * @param likeUserName  用户名模糊查询条件分页
	 * @return 分页后的数据列表
	 * @throws DaoException
	 */
	public List<UserInfo> findByCode(String likeUserCode,int currentPage,int pageSize);
	/**
	 * 根据账号模糊查询得到总的记录数,对应findByCode
	 * @param userName
	 * @return 用户总量
	 */
	public int getTotalRowsByCode(String likeUserCode);
	/**
	 * 根据用户类型查询，并对结果分页 当前页和每页数量任意一个小于1就不分页查询
	 * @param currentPage   从1开始,表示第一页
	 * @param pageSize      每一页显示记录数的多少
	 * @param likeUserName  用户名模糊查询条件分页
	 * @return 分页后的数据列表
	 * @throws DaoException
	 */
	public List<UserInfo> findByType(String userType,int currentPage,int pageSize);
	/**
	 * 根据类型查找获取总记录数对应findByType
	 * @param userType
	 * @return
	 */
	public int getTotalRowsByType(String userType);
	
}
